package com.ruoyi.common.core.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * 航船电池对象 usv_boat_status
 *
 * @author lwq
 * @date 2021-07-02
 */
@Data
@ApiModel("航船电池模型")
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "sys_boat_battery")
public class SysBoatBattery extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @ApiModelProperty(value = "ID")
    @TableId(type = IdType.AUTO)
    private long id;

    /**
     * 航船编号
     */
    @Excel(name = "航船编号")
    @ApiModelProperty(value = "航船编号")
    @TableField(value = "boat_sn")
    private String boatSn;

    /**
     * 任务ID
     */
    @Excel(name = "任务ID")
    @ApiModelProperty(value = "任务ID-关联sys-task表主键id")
    @TableField(value = "task_id")
    private long taskId;

    /**
     * 无人船ID
     */
    @Excel(name = "无人船ID")
    @ApiModelProperty(value = "无人船ID-关联sys-device_info表主键id")
    @TableField(value = "device_id")
    private long deviceId;

    /**
     * 推进器(左)转速值
     */
    @Excel(name = "推进器(左)转速值")
    @ApiModelProperty(value = "推进器(左)转速值")
    @TableField(value = "thruster_port")
    private int Thruster_PORT;

    /**
     * 推进器(右)转速值
     */
    @Excel(name = "推进器(右)转速值")
    @ApiModelProperty(value = "推进器(右)转速值")
    @TableField(value = "thruster_stbd")
    private int Thruster_STBD;

    /**
     * 推进器(左)角度
     */
    @Excel(name = "推进器(左)角度")
    @ApiModelProperty(value = "推进器(左)角度")
    @TableField(value = "angle_port")
    private int Angle_PORT;

    /**
     * 推进器(右)角度
     */
    @Excel(name = "推进器(右)角度")
    @ApiModelProperty(value = "推进器(右)角度")
    @TableField(value = "angle_stbd")
    private int Angle_STBD;

    /**
     * 推进器(左)状态
     */
    @Excel(name = "推进器(左)状态")
    @ApiModelProperty(value = "推进器(左)状态")
    @TableField(value = "status_port")
    private int status_PORT;

    /**
     * 推进器(右)状态
     */
    @Excel(name = "推进器(右)状态")
    @ApiModelProperty(value = "推进器(右)状态")
    @TableField(value = "status_stbd")
    private int status_STBD;

    /**
     * 总电压
     */
    @Excel(name = "总电压")
    @ApiModelProperty(value = "总电压")
    @TableField(value = "voltage")
    private float voltage;

    /**
     * 总电流
     */
    @Excel(name = "总电流")
    @ApiModelProperty(value = "总电流")
    @TableField(value = "current")
    private float current;

    /**
     * 剩余容量
     */
    @Excel(name = "剩余容量")
    @ApiModelProperty(value = "剩余容量")
    @TableField(value = "soc")
    private float soc;

    /**
     * 单个电池最大电压
     */
    @Excel(name = "单个电池最大电压")
    @ApiModelProperty(value = "单个电池最大电压")
    @TableField(value = "cell_h_voltage")
    private float cellHVoltage;

    /**
     * 最大电压的电池编号
     */
    @Excel(name = "最大电压的电池编号")
    @ApiModelProperty(value = "最大电压的电池编号")
    @TableField(value = "cell_hv_id")
    private String cellHvId;

    /**
     * 单个电池最小电压
     */
    @Excel(name = "单个电池最小电压")
    @ApiModelProperty(value = "单个电池最小电压")
    @TableField(value = "cell_l_voltage")
    private float cellLVoltage;

    /**
     * 最小电压的电池编号
     */
    @Excel(name = "最小电压的电池编号")
    @ApiModelProperty(value = "最小电压的电池编号")
    @TableField(value = "cell_lv_id")
    private String cellLvId;

    /**
     * 单个电池最高温度
     */
    @Excel(name = "单个电池最高温度")
    @ApiModelProperty(value = "单个电池最高温度")
    @TableField(value = "cell_h_temp")
    private float cellHTemp;

    /**
     * 最高温度电池编号
     */
    @Excel(name = "最高温度电池编号")
    @ApiModelProperty(value = "最高温度电池编号")
    @TableField(value = "cell_ht_id")
    private String cellHtId;

    /**
     * 单个电池最低温度
     */
    @Excel(name = "单个电池最低温度")
    @ApiModelProperty(value = "单个电池最低温度")
    @TableField(value = "cell_l_temp")
    private float cellLTemp;

    /**
     * 最低温度电池编号
     */
    @Excel(name = "最低温度电池编号")
    @ApiModelProperty(value = "最低温度电池编号")
    @TableField(value = "cell_lt_id")
    private String cellLtId;

    /**
     * 故障码
     */
    @Excel(name = "故障码")
    @ApiModelProperty(value = "故障码")
    @TableField(value = "battery_error")
    private float batteryError;

    /**
     * 充电控制
     */
    @Excel(name = "充电控制")
    @ApiModelProperty(value = "充电控制")
    @TableField(value = "charge_status")
    private String chargeStatus;

    /**
     * 绝缘电阻
     */
    @Excel(name = "绝缘电阻")
    @ApiModelProperty(value = "绝缘电阻")
    @TableField(value = "i_resistance")
    private String iResistance;

    /**
     * 信息字
     */
    @Excel(name = "信息字")
    @ApiModelProperty(value = "信息字")
    @TableField(value = "battery_status")
    private String batteryStatus;

    /**
     * 记录时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "记录时间")
    @TableField(value = "time")
    private Date time;
}
